VB.Net和PHP在数学上的差异

VB.Net和PHP在数学上的差异,php,vb.net,math,Php,Vb.net,Math,我正在将自己的VB.Net实用程序移植到PHP,它用于从照片中提取元数据信息(EXIF)以及GPS坐标。问题是我在PHP中得到了不同的结果。我知道正确的输出是VB.Net的,因为我用在家中拍摄的照片测试了它 我使用的数学运算是 VB.Net degrees + (minutes / 60) + (seconds / 3600) PHP 但是结果不一样! PHP计算有什么不同,或者我应该知道的数字的“舍入”有什么不同吗 谢谢 这是VB.NET代码 Sub Main() Dim degre

我正在将自己的VB.Net实用程序移植到PHP,它用于从照片中提取元数据信息(EXIF)以及GPS坐标。问题是我在PHP中得到了不同的结果。我知道正确的输出是VB.Net的,因为我用在家中拍摄的照片测试了它

我使用的数学运算是

VB.Net

degrees + (minutes / 60) + (seconds / 3600)
PHP

但是结果不一样! PHP计算有什么不同,或者我应该知道的数字的“舍入”有什么不同吗


谢谢

这是VB.NET代码

Sub Main()
    Dim degrees As Double = 23 / 1
    Dim minutes As Double = 45
    Dim seconds As Double = 1031 / 100

    Console.WriteLine(degrees + (minutes / 60) + (seconds / 3600))
End Sub
这是PHP代码

$degrees = 23 / 1;
$minutes = 45;
$seconds = 1031 / 100;

$result = $degrees + ($minutes / 60) + ($seconds / 3600);

echo $result;
它们打印相同的结果:

23.752863888889

我意识到PHP不会在逗号后给我足够的数字。VB.Net显示了其中的1到2个。世界跆拳道联盟。。。伙计们,谢谢大家!我将试图找到PHP“削减”输出的原因。再次感谢

编辑: 答案是
ini_集('precision',20)


谢谢大家!

VB.net中的数据类型是什么?你能给我们一个例子,你会为三个变量中的每一个输入值,以及每种语言的结果是什么?结果是什么?我用标准值(GPS的数据、分和秒)进行三次除法,然后是我在上面发布的操作。在这两种情况下,我用于数学运算的值是相同的。我用VB.Net得到的结果是39.0093546999996,25.75271279999998,用PHP得到的结果是39.64388888889,25.38972222222(我更改了坐标,但保留了差异,因为它们是我自己的坐标)@JohnDoe,给出一个值
分钟
,和
,这导致了差异。23/1表示度,45/1分钟,1031/100秒(比如说长距离),我自己就是这么做的,发现了同样的事情。
$longdeges=explode(“/”,$exif['GPS']['GPSLongitude'][0])$长分钟=爆炸(“/”,$exif['GPS']['GPSLongitude'][1])$longSeconds=explode(“/”,$exif['GPS']['GPSLongitude'][2])$longDegreesResult=$longDegrees[0]/$longDegrees[1]$longMinutesResult=$longMinutes[0]/$longMinutes[1]$longSecondsResult=$longSeconds[0]/$longSeconds[1]$长幅=$longDegreesResult+($longMinutesResult/60)+($longSecondsResult/3600)这是长度计算,数组的值与我给你的值完全相同…这是错误的
23.752863888889
这也是我得到的。这些不是我的座右铭。从VB.Net中我得到了正确的
23.7527127999998
!(在谷歌地图中查看)@JohnDoe-invisal上面的答案是VB.NET也能给出的,并且是数学上正确的答案。要生成
23.7527127999998的(不正确)值,
秒数需要为9.76,而不是10.31。向我们展示你的VB代码。
23.752863888889