You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使JQuery与C#的Decimal计算结果保持一致?

解决C#与JavaScript计算结果不一致的问题

首先,你给出的JavaScript代码结果明显异常——按照代码逻辑141.5 / (1 + 131.5),正确计算结果应该约为1.0679245283018868,和C#的decimal结果高度接近,而非你提到的0.125055...。请先排查实际代码是否存在数字输入错误(比如把141.5误写为16.5,或131.5写成1315)。

如果代码书写正确,想要让JavaScript得到和C# decimal一致的计算结果,可按以下两种方案处理:

方案1:原生JS近似计算

若不需要极致精度,直接用原生JS计算即可,结果和C#的decimal值几乎无差异:

var geoConvr = 141.5 / (1 + 131.5);
// 输出结果:1.0679245283018868

注意:无需额外调用parseFloat,数字字面量本身就是Number类型。

方案2:高精度计算(完全匹配C# decimal精度)

C#的decimal是128位高精度十进制类型,而JS的Number是64位双精度浮点数,若要完全对齐精度,需使用第三方高精度数学库(比如decimal.js):

  1. 引入decimal.js(可通过npm安装或直接引入CDN)
  2. 用库的API实现计算:
// 初始化高精度数值实例
const num1 = new Decimal(141.5);
const num2 = new Decimal(1);
const num3 = new Decimal(131.5);

// 执行除法与加法运算
const geoConvr = num1.dividedBy(num2.plus(num3));
console.log(geoConvr.toString());
// 输出结果:1.0679245283018867924528301887

这个结果和C#代码的返回值完全一致。

内容的提问来源于stack exchange,提问作者TechGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:05:17