Javascript parseFloat不';我不能给出确切的数值

Javascript parseFloat不';我不能给出确切的数值,javascript,jquery,parsefloat,Javascript,Jquery,Parsefloat,我正在从事一个项目,该项目需要“小费箱”计算系统。正如您在代码片段中看到的,它没有像我预期的那样工作。我怎样才能解决这个问题 $(“选择[name='tip'])。在('change',function()上{ var thiz=$(本); var content_credit=parseFloat($(“#f#u content_credit”).text(); var total_balance=parseFloat($(“#f#u total_balance”).text(); var

我正在从事一个项目,该项目需要“小费箱”计算系统。正如您在代码片段中看到的,它没有像我预期的那样工作。我怎样才能解决这个问题

$(“选择[name='tip'])。在('change',function()上{
var thiz=$(本);
var content_credit=parseFloat($(“#f#u content_credit”).text();
var total_balance=parseFloat($(“#f#u total_balance”).text();
var tip=parseFloat(thiz.val());
控制台日志(总余额+“-”+内容积分+“-”+提示);
$(“#f#u#u#u#u#u#u#u#u#u#u#u#u#u#u#u;
});

总余额
45.67
信用
10.20
小费箱
0克雷迪
0.1学分
0.2学分|不起作用
0.3学分
0.8学分
1.2信贷|不起作用
确认计算后
总余额-贷方-提示 35.47
像这样尝试,使用
toFixed()
表示小数点

$(“选择[name='tip'])。在('change',function()上{
var thiz=$(本);
var content_credit=parseFloat($(“#f#content_credit”).text()).toFixed(2);
var total_balance=parseFloat($(“#f_total_balance”).text()).toFixed(2);
var tip=parseFloat(thiz.val()).toFixed(2);
控制台日志(总余额+“-”+内容积分+“-”+提示);
$(“#f#u后#u确认”).text(parseFloat(总#u余额-内容#u信用提示).toFixed(2));
});

总余额
45.67
信用
10.20
小费箱
0克雷迪
0.1学分
0.2学分|不起作用
0.3学分
0.8学分
1.2信贷|不起作用
确认计算后
总余额-贷方-提示 35.47
该问题是由于浮点计算不一致造成的。你可以在评论中提到的@Alexis链接上了解更多

要解决实际问题,可以对最终求和值调用
toFixed()
,将其格式化为所需的小数位数。试试这个:

$(“选择[name='tip'])。在('change',function()上{
var thiz=$(本);
var content_credit=parseFloat($(“#f#content_credit”).text()).toFixed(2);
var total_balance=parseFloat($(“#f_total_balance”).text()).toFixed(2);
var tip=parseFloat(thiz.val()).toFixed(2);
var final=(总余额-内容-信用-提示)。toFixed(2);
控制台日志(最终);
$(“确认后的f”)文本(最终文本);
});

总余额
45.67
信用
10.20
小费箱
0克雷迪
0.1学分
0.2学分|现在有效
0.3学分
0.8学分
1.2信贷|现在有效
确认计算后

总余额-贷记-小费 35.47
数学四舍五入(100*tot)/100一起使用其将用
0.12位数固定

$(“选择[name='tip'])。在('change',function()上{
var thiz=$(本);
var content_credit=parseFloat($(“#f#u content_credit”).text();
var total_balance=parseFloat($(“#f#u total_balance”).text();
var tip=parseFloat(thiz.val());
var tot=总余额-内容-信用提示;
var cal=数学四舍五入(100*tot)/100;
控制台日志(cal);
$(“#f#u后#u确认”)。文本(cal);
});

总余额
45.67
信用
10.20
小费箱
0克雷迪
0.1学分
0.2学分|不起作用
0.3学分
0.8学分
1.2信贷|不起作用
确认计算后
总余额-贷方-提示 35.47
这可以帮助您欢迎来到浮点数学的世界!请注意,
parseFloat()
是一个原生JS方法。这与我无关jQuery@Alexis我几乎忍不住要结束了,因为这看起来是你最好的选择,因为它非常适合货币数据。@Alexis我不会说这在技术上是一个骗局,因为OP在问“我如何解决这个问题”,不是“为什么会发生”
0.2
1.2
选项仍然显示OP不期望的值。确认后,您需要调用
toFixed()
,对您在
文本()中放置的值进行调用
toFixed()
@rorymcrossan Yes同意您的意见感谢您的注意,现在已更改。