Đến nội dung


Hình ảnh
- - - - -

Chuyển string sang number


  • Please log in to reply
3 replies to this topic

#1 haimed

haimed

    biết vẽ circle

  • Members
  • PipPip
  • 39 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 03 February 2010 - 11:09 AM

Cho mình hỏi khi dùng lệnh atof để chuyển string sang number vd (atof "123456.78") nó cứ trả về giá trị làm tròn 123457.0 ; mình muốn lấy nguyên 123456.78 thi làm như nào?
Thanks!
  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 03 February 2010 - 12:37 PM

Cho mình hỏi khi dùng lệnh atof để chuyển string sang number vd (atof "123456.78") nó cứ trả về giá trị làm tròn 123457.0 ; mình muốn lấy nguyên 123456.78 thi làm như nào?
Thanks!

atof : chuyển string sang số thực
atoi : chuyển string sang số nguyên
(atoi "123456.78") -> 123456
  • 0

#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 03 February 2010 - 02:01 PM

Cho mình hỏi khi dùng lệnh atof để chuyển string sang number vd (atof "123456.78") nó cứ trả về giá trị làm tròn 123457.0 ; mình muốn lấy nguyên 123456.78 thi làm như nào?
Thanks!

Chào haimed
Theo Tue_NV, bạn không cần bận tâm đến chuyện này. Vì khi sử dụng (atof "123456.78") -> thì bản thân nó vốn đã trả về giá trị 123456.78, chỉ có điều trên màn hình thì nó trả về trị 123457.0 mà thôi.
Khi cần mình có thể dùng hàm rtos để chuyển nó lại về chuỗi.

Ví dụ :
(setq a (atof "123456.78"))
->123457.0

(rtos a)
-> "123456.78"

(rtos (- a 0.42))
->"123456.36"
  • 1

#4 haimed

haimed

    biết vẽ circle

  • Members
  • PipPip
  • 39 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 03 February 2010 - 02:21 PM

Chào haimed
Theo Tue_NV, bạn không cần bận tâm đến chuyện này. Vì khi sử dụng (atof "123456.78") -> thì bản thân nó vốn đã trả về giá trị 123456.78, chỉ có điều trên màn hình thì nó trả về trị 123457.0 mà thôi.
Khi cần mình có thể dùng hàm rtos để chuyển nó lại về chuỗi.

Ví dụ :
(setq a (atof "123456.78"))
->123457.0

(rtos a)
-> "123456.78"

(rtos (- a 0.42))
->"123456.36"

Thanks Tue_NV, mình cứ tưởng có biến gì trong lisp để đặt độ chính xác sau dấu phẩy, tìm mãi ko ra
  • 0