</div><div>/*</div><div> 题目描述</div><div>求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题 </div><div>输入例子:</div><div>multiply(3, 0.0001)</div><div>输出例子:</div><div>0.0003</div><div>String.prototype.substring()(<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substring" target="_blank">https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substring</a>)</div><div>Number.prototype.toFixed()(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)</div><div>// 推荐写法</div><div>*/</div><div>function multiply(a, b) {</div><div> a = a.toString();</div><div> b = b.toString();</div><div> var aLen = a.substring(a.indexOf('.') + 1).length;</div><div> var bLen = b.substring(b.indexOf('.') + 1).length; </div><div> </div><div> return (a * b).toFixed(Math.max(aLen, bLen));</div><div> /* 本题未说明保留小数位数, 这里假定得出的结果不含多余的0, 即0.0003000...需转成0.0003 */</div><div>}</div><div>console.log( "Solution:" + multiply( 3, 0.0001 ));</div><div>console.log( 3 * 0.0001 );</div><div>console.log( "Solution: " + multiply( 3.0001, 0.0002 ));</div><div>console.log( 3.0001 * 0.0002 );</div><div>