2

我在这里遇到了一些让我困惑的事情,而且我没有背后的经验来发现问题,所以我请您提供协助。无法在Javascript中指定十进制变量[CRM Online 2016]

我正在为CRM Online 2016开发,我试图从使用oData的另一个实体推断值。我设法得到0.2从源实体的价值,但是当我尝试和分配这一个变量,其值0.2变为0见下:

图片1:

Image showing value contained in results.new_Rate

图2:

Image showing value assigned to variable

我只初始化用于测试目的的变量。我如何传递/使用results.new_Rate中包含的值?我正在考虑在税收计算中将此用作百分比。

非常感谢

+0

results.new_Rate在您的第一张图片中是一个字符串,而不是一个浮点数,因此您需要解析它。然而,在你的第二张图片中,它似乎是一个数字(无论是int还是只是一个数字),你确定它与json响应本身无关吗?任何机会得到原始的JSON答案?此外,你可以通过在result.new_Rate之前使用parseFloat或者一元运算符(+)将其转换为数字,如:'textRate = + results.new_Rate;'无论哪种方式,json的答案都是关键。 – briosheje

+0

感谢您的回复。我试过parseFloat(results.new_Rate);和parseFloat((results.new_Rate).toFixed(2));和parseFloat(results.new_Rate).toFixed(2);但是全部在变量中返回0。这就像.toFixed(2);没有被调用...这是JSON字符串“{\ r \ n \”d \“:{\ r \ n \”new_Rate \“:\”0.2000000000 \“\ r \ n \} \ r \ n \}“ –

+0

算了一下。 if语句是错误的.... –

回答

4

声明你的变量,这个方法:

var taxRate = parseFloat((0.00).toFixed(2));

的方法 “toFixed” 只保留两位小数。

0

哦天哪,

我发现,如果声明是虚假的,因此不能运行的代码。更改为:

if (results != null) 

这现在分配变量。

现在使用parseFloat()和.toFixed(2);它工作的一种享受。

感谢您的建议

相关问题