ตัวเลขมากกว่า 13 หลัก ทำไมมันเอามาลบกับค่าอื่นแล้วเพี้ยนๆครับ ใช้ int() ก็ไม่หาย

เริ่มโดย okgofun, 12 พฤศจิกายน 2007, 18:52:42

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

okgofun

ตัวเลขมากกว่า 13 หลัก ทำไมมันเอามาลบกับค่าอื่นแล้วเพี้ยนๆครับ ใช้ int() ก็ไม่หาย

เช่น

93000000313124 - 1930

ประมาณนี้ครับ ผลที่ได้คือเพี้ยนไปเลข มีค่า + ด้วย กรณีตัวเลขมากๆแบบนี้ต้องกำหนดอะไรเพิ่มเติมหรือปล่าวครับสำหรับ PHP

ใครพอทราบบ้างครับ ว่าต้องกำหนดยังไง ลองหาวิธีดูแต่ยังไมได้เสียที
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

ryanKung

<?

print $test = 93000000313124 - 1930;  //93000000311194
print "<br>";
$a = 93000000313124;
$b = 1930;
print $test2 = $a-$b;  //93000000311194
print "<br>";
print $test3 = intval($a)-intval($b); //1073450906
print "<br>";
print $test4 = doubleval($a)-doubleval($b); //93000000311194
print "<br>";

?>


ที่ได้ค่าถูก เพราะ php มันเลือก type ให้เอง

Mr_RSS

อ้างถึงจาก: okgofun ใน 12 พฤศจิกายน 2007, 18:52:42
ตัวเลขมากกว่า 13 หลัก ทำไมมันเอามาลบกับค่าอื่นแล้วเพี้ยนๆครับ ใช้ int() ก็ไม่หาย

เช่น

93000000313124 - 1930

ประมาณนี้ครับ ผลที่ได้คือเพี้ยนไปเลข มีค่า + ด้วย กรณีตัวเลขมากๆแบบนี้ต้องกำหนดอะไรเพิ่มเติมหรือปล่าวครับสำหรับ PHP

ใครพอทราบบ้างครับ ว่าต้องกำหนดยังไง ลองหาวิธีดูแต่ยังไมได้เสียที

Rang ของ int มันมีค่าได้ไม่ถึงครับ  อย่างน้อยต้อง Double

okgofun

ที่ยากกว่านั้นคือ ผมจะเอาค่านี้เก็บไว้ในตัวแปรก่อนแล้วยัดลงไฟล์หนะครับ แล้วค่อย include ค่ามาใช้ คือจำเป็นต้องลูปรับค่าหมายเลขจำนวนมากๆนี่มาทำการหนะครับ


$cut = 350 ;
$number = "หมายเลขของท่านคือ ".doubleval(9500000133200-$cut)." ยินดีต้อนรับ";

echo $number ;

// ยังไม่ได้เลยครับ ควรจะใช้คำสั่งแบบใหนดีครับ

ปล. จำเป็นต้องใช้งานลักษณะนี้จริงๆ เหอๆ แย่เลย  :P

จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

ryanKung

อ้างถึงจาก: okgofun ใน 12 พฤศจิกายน 2007, 19:28:43
ที่ยากกว่านั้นคือ ผมจะเอาค่านี้เก็บไว้ในตัวแปรก่อนแล้วยัดลงไฟล์หนะครับ แล้วค่อย include ค่ามาใช้ คือจำเป็นต้องลูปรับค่าหมายเลขจำนวนมากๆนี่มาทำการหนะครับ


$cut = 350 ;
$number = "หมายเลขของท่านคือ ".doubleval(9500000133200-$cut)." ยินดีต้อนรับ";

echo $number ;

// ยังไม่ได้เลยครับ ควรจะใช้คำสั่งแบบใหนดีครับ

ปล. จำเป็นต้องใช้งานลักษณะนี้จริงๆ เหอๆ แย่เลย  :P



code นี้ผมลองแล้วได้  9500000132850  ไม่ถูกหรอครับ
น่าจะผิดขั้นตอนอื่นละ ลอง check ดูครับ

okgofun

$detail['show'] = '<a href="showdetail-'.doubleval(9500000132417).'.html" target="_blank" title="คลิ๊กอ่าน">เนื้อหาพิเศษ</a>' ;

echo $detail['show'] ;

ประมาณนี้ครับ ขนาดยังไม่ลบค่า มันก็ยังเพี้ยนครับ ค่าที่ได้ออกมาแบบนี้ showdetail-9.50000013242E+012.html เป็นแบบนี้เฉยเลยครับ
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

okgofun

อ้างถึงจาก: ryanKung ใน 12 พฤศจิกายน 2007, 19:53:32
อ้างถึงจาก: okgofun ใน 12 พฤศจิกายน 2007, 19:28:43
ที่ยากกว่านั้นคือ ผมจะเอาค่านี้เก็บไว้ในตัวแปรก่อนแล้วยัดลงไฟล์หนะครับ แล้วค่อย include ค่ามาใช้ คือจำเป็นต้องลูปรับค่าหมายเลขจำนวนมากๆนี่มาทำการหนะครับ


$cut = 350 ;
$number = "หมายเลขของท่านคือ ".doubleval(9500000133200-$cut)." ยินดีต้อนรับ";

echo $number ;

// ยังไม่ได้เลยครับ ควรจะใช้คำสั่งแบบใหนดีครับ

ปล. จำเป็นต้องใช้งานลักษณะนี้จริงๆ เหอๆ แย่เลย  :P



code นี้ผมลองแล้วได้  9500000132850  ไม่ถูกหรอครับ
น่าจะผิดขั้นตอนอื่นละ ลอง check ดูครับ


อ่า โทษทีครับ ต้องเพิ่มตัวเลขอีกหลักครับ

จาก $number = "หมายเลขของท่านคือ ".doubleval(9500000133200-$cut)." ยินดีต้อนรับ";
เป็น $number = "หมายเลขของท่านคือ ".doubleval(95000001332005-$cut)." ยินดีต้อนรับ"; // เพิ่มอีกหลัก

คือผมลองแล้ว ถ้าตัวเลข 13 หลัก มันจะมีปัญหาเลยครับ

จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

payu


ปัญหาไม่ได้อยู่ที่ตัวคำนวณครับ .. อยู่ที่ตัว display (echo)

ให้ใช้ sprintf แทนครับ

$number = "หมายเลขของท่านคือ ".sprintf('%.0f', 95000001332005-$cut)." ยินดีต้อนรับ";

echo $number;


[direct=http://www.facebook.com/iipayu]payu on facebook[/direct]

EThaiZone

#8
อ้างถึงจาก: payu ใน 12 พฤศจิกายน 2007, 20:35:47

ปัญหาไม่ได้อยู่ที่ตัวคำนวณครับ .. อยู่ที่ตัว display (echo)

ให้ใช้ sprintf แทนครับ

$number = "หมายเลขของท่านคือ ".sprintf('%.0f', 95000001332005-$cut)." ยินดีต้อนรับ";

echo $number;




ทำให้นึกถึงของฝึกภาษา C ตอนใหม่ๆ เลยแฮะ
printf แล้วใส่ผิดนิดหน่อย error ตลอด

okgofun

#9
อ้างถึงจาก: payu ใน 12 พฤศจิกายน 2007, 20:35:47

ปัญหาไม่ได้อยู่ที่ตัวคำนวณครับ .. อยู่ที่ตัว display (echo)

ให้ใช้ sprintf แทนครับ

$number = "หมายเลขของท่านคือ ".sprintf('%.0f', 95000001332005-$cut)." ยินดีต้อนรับ";

echo $number;



:) ขอบคุณมากครับได้แล้วครับ

* EThaiZone แก้ข้อความเอาออกมานอก Quote ครับ
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน