为什么math.round不能四舍五入到两位数?

时间:2020-02-20 15:07:57

标签: vb.net math rounding

以下VB.Net代码未返回预期结果:

        Dim sum As Single = 535353
        Dim vat As Single = Math.Round(sum * 0.19, 2)
        Dim total As Single = Math.Round(sum + vat, 2)

        Debug.WriteLine(String.Format("sum: {0:c2}, vat: {1:c2}, total: {2:c2}", sum, vat, total))

vat正确设置为 101717.07 ,但结果“总计”为 636070.063 。 为什么最后一个Math.round函数返回3位数字,并且结果错误?

1 个答案:

答案 0 :(得分:0)

尝试使用Double

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".Activity_Login"></activity>

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".MapsActivity"></activity>

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".UserActivity" />
    <activity android:name=".VerifyPhoneActivity" />
    <activity android:name=".TuserActivity" />
</application>