import std.bigint;
import std.conv;

string bcadd(string num1, string num2, int scale = 0) {
    BigInt int1 = to!BigInt(num1);
    BigInt int2 = to!BigInt(num2);
    BigInt sum = int1 + int2;
    if (scale == 0) {
        return to!string(sum);
    } else {
        return format("%." ~ to!string(scale) ~ "s", to!string(sum));
    }
}

string bcsub(string num1, string num2, int scale = 0) {
    BigInt int1 = to!BigInt(num1);
    BigInt int2 = to!BigInt(num2);
    BigInt diff = int1 - int2;
    if (scale == 0) {
        return to!string(diff);
    } else {
        return format("%." ~ to!string(scale) ~ "s", to!string(diff));
    }
}
``
dlang语言参考实现两个字符串代表的数字进行高精度加法和减法运算并且可以指定精度类似php的bcadd和bcsub关于php的bcadd函数说明如下:bcadd — 两个任意精度数字的加法计算说明 ¶bcaddstring $num1 string $num2 int $scale = null string对 num1 和 num2 求和。参数 ¶num1左操作数字符串类型。num2右操作数字

原文地址: https://www.cveoy.top/t/topic/f4zB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录