views:

105

answers:

3

How can I define an array of decimals without explicitly casting each one?

//decimal[] prices = { 39.99, 29.99, 29.99, 19.99, 49.99 }; //can't convert double to decimal
//var prices = { 39.99, 29.99, 29.99, 19.99, 49.99 }; //can't initialize... 
decimal[] prices = { (decimal)39.99, (decimal)29.99, (decimal)29.99, (decimal)19.99, (decimal)49.99 };
+9  A: 

You need to add an M to the end

Kendrick
+13  A: 

Use the m suffix.

decimal[] prices = { 39.99m, 29.99m, 19.99m, 49.99m };

Without the m (or M) suffix, the compiler treats it as a double.

-- http://msdn.microsoft.com/en-us/library/364x0z75(VS.71).aspx

Asaph
+2  A: 

A decimal literal is 39.99m

Cylon Cat